myApp.service("httpService",function ($http,$q,requestContext) {
	var sendRequest=function(config){
		var deferred = $q.defer();//$q一种内置服务，它可以使你异步地执行函数，并且当函数执行完成时它允许你使用函数的返回值（或异常）。
		//$q.defer()  可以创建一个deferred实例（延迟对象实例）。
		$http(config).then(function (response) {
			deferred.resolve(response.data);
		}, function (error) {
			deferred.reject(error);
		});
		return deferred.promise; //通过deferred延迟对象，可以得到一个承诺promise，而promise会返回当前任务的完成结果
	};
	
	this.getRequest=function(url,params){
		var config={
			// 'headers':{'Content-Type': 'application/x-www-form-urlencoded'},
           // 'transformRequest': function(obj) {
           //   var str = [];
           //   for(var p in obj){
           //     str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
           //   }
           //   return str.join("&");
           // },
			method:"GET",
			url:requestContext+url,
			params:params ?  params : []
		};
		return sendRequest(config);
	}
	
	
	this.getMenu=function(menuId){
		var config={
			method:"GET",
//            url:requestContext+"systemsMenu/selectFormatMenusByMenuId?id="+menuId,
			url:requestContext+"systemsMenu/selectAllFormatMenus",
		};
		return sendRequest(config);
	}
	
	//资产操作列表(点操作的详细信息)
	this.getAssetsOperation=function(snedData){
		var config={
			method:"POST",
			url:requestContext+"assets/getAssetsOperation",
			data:snedData
		};
		return sendRequest(config);
	}
	//资产操作列表(添加操作信息)
	this.insertAssetsOperation=function(snedData){
		var config={
			method:"POST",
			url:requestContext+"assets/insertAssetsOperation",
			data:snedData
		};
		return sendRequest(config);
	}
	
	//所有的请求
	this.postRequest=function(url,data){
		var config={
//			'headers':{'Content-Type': 'application/x-www-form-urlencoded'},
//            'transformRequest': function(obj) {
//              var str = [];
//              for(var p in obj){
//                str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
//              }
//              return str.join("&");
//            },
			method:"POST",
			url:requestContext+url,
			data:data
		};
		return sendRequest(config);
	}
	
});